package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 *  增强型for循环
 *
 *  JDK5之后，java提供了一个新特性:增强型for循环，也称为新循环
 *  它的出现不是取代传统for循环的工作，而是用相同的语法遍历集合或数组使用。
 *
 *  语法:
 *  for(元素类型 变量名 : 集合或数组){
 *      ...
 *  }
 */
public class NewForDemo {
    public static void main(String[] args) {
        String[] array = {"one","two","three","four","five"};
        for(int i=0;i<array.length;i++){//传统for循环遍历数组
            System.out.println(array[i]);
        }
        /*
            新循环是编译器认可的，而非虚拟机。
            编译器会将新循环遍历数组改回成普通的for循环遍历
         */
        for(String e : array){//新循环遍历数组
            System.out.println(e);
        }


        Collection<String> c = new ArrayList<>();
        c.add("一");
        c.add("二");
        c.add("三");
        c.add("四");
        c.add("五");
        //迭代器遍历
        Iterator<String> i = c.iterator();
        while(i.hasNext()){
            String e = i.next();
            System.out.println(e);
        }
        //新循环遍历
        /*
            新循环遍历集合会被编译器改回成迭代器遍历
            新循环遍历集合过程中不可以通过集合的方法增删元素
         */
        for(String e : c){
            System.out.println(e);
        }

    }
}







